package spark_core;

import java.util.Arrays;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

/**
 * @author shihb
 * @date 2020/1/6 12:04
 *Rdd创建
 */
public class RddDemo {

  public static void main(String[] args) {
    //local模式,创建SparkConf对象设定spark的部署环境
    SparkConf sparkConf = new SparkConf().setMaster("local[*]").setAppName("mark rdd");
    //创建spark上下文对象（这边是java上下文）
    JavaSparkContext sc = new JavaSparkContext(sparkConf);
    //1.从内存中创建
    JavaRDD<Integer> arrayRdd = sc.parallelize(Arrays.asList(1, 2, 3, 4),2);
//    arrayRdd.collect().forEach(System.out::println);
    arrayRdd.saveAsTextFile("output");

    //2.从外部存储中创建
    //默认读取项目路径，也可以读取其他路径，HDFS
    //传递的分区参数为最小分区数，实际分区取决于hadoop读取文件时的分片规则
//    sc.textFile("hdsf://ip:port/root");
    JavaRDD<String> fileRdd = sc
        .textFile(RddDemo.class.getClassLoader().getResource("words").getPath(),2);

    //fileRdd.collect().forEach(System.out::println);
//    fileRdd.saveAsTextFile("output");
    //停止
    sc.stop();
  }

}
